﻿using System;
using System.Data;
using System.Threading;
using System.Windows.Forms;
using CuaHangMayTinh.BusinessEntities;
using CuaHangMayTinh.BusinessLogicLayer;
using CuaHangMayTinh.Utilities;

namespace CuaHangMayTinh.PresentationLayer
{
    /// <summary>
    /// form đăng nhập của chương trình
    /// </summary>
    public partial class FormDangNhap : Form
    {

        private string Text = string.Empty;
        /// <summary>
        /// lưu thông tin của người đăng nhập
        /// </summary>
        public NhanVienEntity NhanVien = new NhanVienEntity();

        public TaiKhoanEntity TaiKhoan;
        /// <summary>
        /// constructor
        /// </summary>
        public FormDangNhap()
        {
            InitializeComponent();
        }

        /// <summary>
        /// đăng nhập vào hệ thống
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            if (CheckLogin())
            {
                DialogResult = DialogResult.OK;
                this.Close();
            }
        }

        /// <summary>
        /// thoát khỏi đăng nhập tắt chương trình
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_cancel_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        /// <summary>
        /// kiểm tra chuỗi kết nối
        /// </summary>
        /// <param name="strConn"></param>
        /// <returns></returns>
        private bool CheckConnection(string strConn)
        {
            return true;
        }

        /// <summary>
        /// kiểm tra thông tin đăng nhập
        /// </summary>
        /// <returns></returns>
        private bool CheckLogin()
        {
            if (IsInput())
            {
                //Thread t = new Thread(() => (new Splash.Splash1("Kiểm tra đăng nhập")).ShowDialog());
                //t.Start();
                var nv = NhanVienManager.DangNhap(txt_username.Text, txt_matkhau.Text, ref Text);
                try
                {
                    NhanVien = NhanVienManager.ConvertToList(nv)[0];
                }
                catch (Exception)
                {
                    //t.Abort();
                    MessageBox.Show(Text);
                    return false;
                }
                TaiKhoan = TaiKhoanManager.ConvertToList(TaiKhoanManager.Find_UserName(txt_username.Text))[0];
                //t.Abort();
                return true;
            }
            return false;
        }

        /// <summary>
        /// kiểm tra thông tin nhập vao của người dùng
        /// </summary>
        /// <returns></returns>
        private bool IsInput()
        {
            if (StringHelper.IsNullorEmpty(txt_username.Text))
            {
                MessageBox.Show("Tài khoản không được để trống !");
                return false;
            }
            if (StringHelper.IsNullorEmpty(txt_matkhau.Text))
            {
                MessageBox.Show("Mật khẩu không được để trống !");
                return false;
            }
            return true;
        }

    }
}